package com.halflife.parameter.template;

import com.halflife.framework.domain.IRepository;
import org.springframework.stereotype.Repository;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.ResultMap;
import org.apache.ibatis.annotations.Select;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Repository
public interface ParameterRepository extends IRepository {

    int deleteByPrimaryKey(Integer id);

    int insert(Parameter parameter);

    int insertSelective(Parameter parameter);

    Parameter selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(Parameter parameter);

    int updateByPrimaryKey(Parameter parameter);

    List<Parameter> selectAll(Map<String, Object> param);

    int selectCount(Map<String, Object> param);

    List<Parameter> selectListByPage(Map<String, Object> param);

    @Select({"${sql}"})
    @ResultMap("BaseResultMap")
    List<Parameter> selectMany(@Param("sql") String sql);

    @Select({"${sql}"})
    @ResultMap("BaseResultMap")
    Parameter selectOne(@Param("sql") String sql);



}